# vim: syntax=config


###########
# General #
###########

input-ipc-server=/tmp/mpvsocket         # listen for IPC on this socket
#load-stats-overlay=no                   # use local stats.lua

no-border                               # no window title bar
msg-module                              # prepend module name to log messages
msg-color                               # color log messages on terminal
term-osd-bar                            # display a progress bar on the terminal
use-filedir-conf                        # look for additional config files in the directory of the opened file
#pause                                   # no autoplay
#keep-open                               # keep the player open when a file's end is reached
autofit-larger=100%x95%                 # resize window in case it's larger than W%xH% of the screen
cursor-autohide-fs-only                 # don't autohide the cursor in window mode, only fullscreen
input-media-keys=no                     # enable/disable OSX media keys
cursor-autohide=1000                    # autohide the curser after 1s
prefetch-playlist=yes
force-seekable=yes

screenshot-format=png
screenshot-png-compression=8
screenshot-template='~/Desktop/%F (%P) %n'

hls-bitrate=max                         # use max quality for HLS streams

#[ytdl-desktop]
#profile-desc=cond:dedicated_gpu()
#ytdl-format=bestvideo[height<=?2160]+bestaudio/best

#[ytdl-laptop]
#profile-desc=cond:not dedicated_gpu()
ytdl-format="bestvideo[height<=?720]+bestaudio/best"
#ytdl-format=bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best


[default]


#########
# Cache #
#########

cache=yes
demuxer-max-bytes=400MiB
demuxer-max-back-bytes=150MiB


#############
# OSD / OSC #
#############

# osc=no
# osd-bar=no
osd-level=1                             # enable osd and display --osd-status-msg on interaction
osd-duration=2500                       # hide the osd after x ms
osd-status-msg='${time-pos} / ${duration}${?percent-pos:　(${percent-pos}%)}${?frame-drop-count:${!frame-drop-count==0:　Dropped: ${frame-drop-count}}}\n${?chapter:Chapter: ${chapter}}'

osd-font='Source Sans Pro'
osd-font-size=32
osd-color='#CCFFFFFF'                   # ARGB format
osd-border-color='#DD322640'            # ARGB format
#osd-shadow-offset=1                    # pixel width for osd text and progress bar
osd-bar-align-y=0                       # progress bar y alignment (-1 top, 0 centered, 1 bottom)
osd-border-size=2                       # size for osd text and progress bar
osd-bar-h=2                             # height of osd bar as a fractional percentage of your screen height
osd-bar-w=60                            # width of " " "


#############
# Subtitles #
#############

demuxer-mkv-subtitle-preroll=yes        # try to show embedded subs when seeking even when no index information is present
demuxer-mkv-subtitle-preroll-secs=2

sub-auto=fuzzy                          # external subs don't have to match the file name exactly to autoload
sub-file-paths-append=ass               # search for external subs in these relative subdirectories
sub-file-paths-append=srt
sub-file-paths-append=sub
sub-file-paths-append=subs
sub-file-paths-append=subtitles

embeddedfonts=yes                       # use embedded fonts for SSA/ASS subs
sub-fix-timing=no                       # do not try to fix gaps (which might make it worse in some cases)
# sub-ass-force-style=Kerning=yes         # allows you to override style parameters of ASS scripts
sub-use-margins
sub-ass-force-margins

# the following options only apply to subtitles without own styling (i.e. not ASS but e.g. SRT)
sub-font="Source Sans Pro Semibold"
sub-font-size=36
sub-color="#FFFFFFFF"
sub-border-color="#FF262626"
sub-border-size=3.2
sub-shadow-offset=1
sub-shadow-color="#33000000"
sub-spacing=0.5


#############
# Languages #
#############

slang=enm,en,eng,de,deu,ger             # automatically select these subtitles (decreasing priority)
alang=ja,jp,jpn,en,eng,de,deu,ger       # automatically select these audio tracks (decreasing priority)


#########
# Audio #
#########

audio-file-auto=fuzzy                   # external audio doesn't has to match the file name exactly to autoload
audio-pitch-correction=yes              # automatically insert scaletempo when playing with higher speed
volume-max=130                          # maximum volume in %, everything above 100 results in amplification
volume=100                              # default volume, 100 = unchanged


################
# Video Output #
################

# Active VO options are set conditionally and require my slightly modified
# `scripts/auto-profiles.lua` as well as `scripts/auto-profiles-functions.lua`.
# More information about auto-profiles in general: https://github.com/wiiaboo/mpv-scripts/blob/master/auto-profiles.lua
# on_battery() and dedicated_gpu() are my own functions in `scripts/auto-profiles-functions.lua`
# and might need to be adjusted for your system/setup.

# Defaults for all profiles
tscale=oversample                      # [sharp] oversample <-> linear (triangle) <-> catmull_rom <-> mitchell <-> gaussian <-> bicubic [smooth]
opengl-early-flush=no
opengl-pbo=no                          # "yes" is currently bugged: https://github.com/mpv-player/mpv/issues/4988
icc-profile-auto
icc-force-contrast=1000                      # silence some warning because the profile is bad
hwdec=no

[high-quality]
profile-desc=cond:is_high(get('width', 0), get('height', 0), get('estimated-vf-fps', 0))
# hanning with this radius is broken on OSX due to OpenGL driver bug
#scale=ewa_hanning
#scale-radius=3.2383154841662362
scale=ewa_lanczossharp
cscale=ewa_lanczossoft
dscale=mitchell
scale-antiring=0
cscale-antiring=0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes
#glsl-shaders-append="~/.mpv/shaders/KrigBilateral.glsl"
glsl-shaders-append="~/.mpv/shaders/ravu-lite-r4.hook"
glsl-shaders-append="~/.mpv/shaders/ravu-lite-r4.hook"
glsl-shaders-append="~/.mpv/shaders/ravu-lite-r4.hook"

[mid-quality]
profile-desc=cond:is_mid(get('width', 0), get('height', 0), get('estimated-vf-fps', 0))
scale=spline36
cscale=bicubic
dscale=mitchell
scale-antiring=1.0
cscale-antiring=1.0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes
glsl-shaders-set=""

[low-quality]
profile-desc=cond:is_low(get('width', 0), get('height', 0), get('estimated-vf-fps', 0))
scale=bilinear
cscale=bilinear
dscale=bilinear
scale-antiring=0
cscale-antiring=0
dither-depth=no
correct-downscaling=no
sigmoid-upscaling=no
deband=no
glsl-shaders-set=""

[4K-lavc-threads]
profile-desc=cond:get('width', -math.huge) >= 3840
vd-lavc-threads=32

[4K-lavc-threads-inverted]
profile-desc=cond:get('width', math.huge) < 3840
vd-lavc-threads=0


###################################
# Protocol Specific Configuration #
###################################

[protocol.https]
cache=yes
user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:57.0) Gecko/20100101 Firefox/58.0'

[protocol.http]
cache=yes
user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:57.0) Gecko/20100101 Firefox/58.0'
